2.3 – Solving Reactive Balances In-depth


2.3.0 – Learning Objectives

By the end of this section you should be able to:

  1. Solve simple reactive balances using the molecular and atomic reactive balances.

2.3.1 – Introduction

We will solve the example in the diagram 4.71 using the molecular species and atomic species balance. Python will be implemented to perform calculations. This section goes in-depth of the logic used to solve the problem that is addressed before.


2.3.2 – Problem statement

Recall the block diagram in figure 4.7-1

\[C_2H_6 \longrightarrow C_2H_4 + H_2\]

What are the mol flows of the exit streams of ethane \(C_6H_6\) and ethylene \(C_4H_4\)?


2.3.3 – Solving using the molecular species balance

First, we identify our molecular species; for us, this is Hydrogen, Ethane and Ethylene.

Next, we write out their respective balance equations. Note how the diagram 4.7-1 only shows the output variables (\(\dot{n_1},\dot{n_2}\))

\[C_2H_6 balance: 100 \frac{kmol}{min}_{input} =\dot{n_1}\frac{kmol}{min}_{Output} + C_2H_{6Consumed}\]
\[C_2H_4 balance: C_2H_{4generated} = \dot{n_2}\frac{kmol}{min}_{Output}\]
\[H_2 balance: 40 \frac{kmol}{min}_{generated} = 40 \frac{kmol}{min}_{Output}\]

To further relate these equations, use the stoichiometrey of the dehydrogenation reaction which gives a relationship between the consumed and generated terms:

\[C_2H_6 \rightarrow C_2H_4 + H_2\]

Since there is a 1:1 ratio between the Generation of Hydrogen to \(C_2H_4\):

\[40 \frac{kmol}{min}H_{2generated} * \frac{1 \frac{kmol}{min}C_2H_4}{1 \frac{kmol}{min}H_2} = 40\frac{kmol}{min}C_2H_{4generated}\]

Since there is a 1:1 ratio between the generation of hydrogen and the consumption of Ethane, \(C_2H_{6consumed} = 40\frac{kmol}{min}\).

Substituting the \(C_2H_{6Consumed}\) and the \(C_2H_{4generated}\) into their respective equations, we can see that the outputs of ethane and ethylene \((\dot{n_1},\dot{n_2})\) are \(60\frac{kmol}{min}\) and \(40\frac{kmol}{min}\) respectively.

\[C_2H_6 balance: 100 \frac{kmol}{min}_{input} =\dot{n_1}\frac{kmol}{min}_{Output} + 40\frac{kmol}{min} C_2H_{6Output}\]
\[\dot{n_1}= 60 \frac{kmol}{min}_{Output}\]
\[C_2H_4 balance: C_2H_{4generated} = \dot{n_2}\frac{kmol}{min}_{Output} = 40\frac{kmol}{min}C_2H_{4generated}\]

2.3.4 – Solving using the Atomic species balance

Let’s recall the Atomic balances:

\[Carbon (C) \space balance: Input = Output\]
\[Hydrogen (H) \space balance: Input = Output\]

First the Atomic balances are broken down to collect any molecular species containing the atomic species (Carbon and Hydrogen).

The carbon balance becomes:

\[C_2H_{6input} = C_2H_{6output} + C_2H_{4output}\]

The hydrogen balance becomes:

\[C_2H_{6input} = C_2H_{6output} + C_2H_{4output} + H_{2output}\]

We then isolate the atomic species from the molecular species. Another way of thinking is: How many of N atoms are there in this molecule? For example, there are 2 carbon atoms for every 1 ethane molecule.

The carbon balance becomes:

\[C_2H_{6input}*\frac{2C\frac{kmol}{min}}{1C_2H_6\frac{kmol}{min}} = C_2H_{6output}*\frac{2C\frac{kmol}{min}}{1C_2H_6\frac{kmol}{min}} + C_2H_{4output}*\frac{2C\frac{kmol}{min}}{1C_2H_6\frac{kmol}{min}}\]

The hydrogen balance becomes:

\[C_2H_{6input}*\frac{6H\frac{kmol}{min}}{1C_2H_6\frac{kmol}{min}} = C_2H_{6output}*\frac{6H\frac{kmol}{min}}{1C_2H_6\frac{kmol}{min}} + C_2H_{4output}*\frac{4H\frac{kmol}{min}}{1C_2H_6\frac{kmol}{min}}+H_{2output}*\frac{2H\frac{kmol}{min}}{1H_2\frac{kmol}{min}}\]

Note from diagram 4.7-1, the input and output values are substituted for their respective integers and variables. Remember that ethane and ethene outputs are defined as (\(\dot{n_1},\dot{n_2}\))

rewriting the balances

The carbon balance becomes:

\[200 \frac{kmol}{min} = \dot{2n_1} + \dot{2n2}\]

The hydrogen balance becomes:

\[600 \frac{kmol}{min} = 6\dot{n_1} + 4\dot{n_2} + 80 \frac{kmol}{min}\]

This is a simple linear equation to solve. This notebook will use the sympy linear algebra solver.

In [2]:
#import the sympy libary
import sympy as sym
# Write symbolic variables n1 and n2
sym.var(['n1','n2'])
# Setup equations
eqns = [
    sym.Eq(2*n1 + 2*n2 , 200),
    sym.Eq(6*n1+4*n2+80,600)
]
#solve equations
sol = sym.solve(eqns)
print("The value of ethane is {}kmol/min \nThe value of ethylene is {}kmol/min ".format(sol[n1],sol[n2]))

The value of ethane is 60kmol/min
The value of ethylene is 40kmol/min